package day230324;

/**
 * @author 兴趣使然黄小黄
 * @version 1.0
 * @date 2023/3/25 14:32
 */
public class Solution {

    // 将字符串 str 转成数字并返回
    // 不使用 API
    public int StrToInt(String str) {
        // 对空字符串进行处理
        if (str == null || "".equals(str)) {
            return 0;
        }
        char[] chars = str.toCharArray();
        int flag = 1;
        int startIndex = 0; // 标记需要处理的字符串起始位置
        // 先判断开头是否为符号 最终结果为 flag * number
        if (chars[0] == '+') {
            flag = 1;
            startIndex = 1;
        }
        if (chars[0] == '-') {
            flag = -1;
            startIndex = 1;
        }
        // 遍历字符串, 并转成数字
        int sum = 0;
        for (int i = startIndex; i < chars.length; i++) {
            if (!(chars[i] >= '0' && chars[i] <= '9')) {
                // 如果不是数字
                sum = 0;
                break;
            }
            sum = sum * 10 + (chars[i] - '0'); // 转化数字
        }
        return flag * sum;
    }

    public static void main(String[] args) {
        Solution solution = new Solution();
        int res = solution.StrToInt("123");
        System.out.println(res);
    }
}
